package com.wk.portal.annotion;

import java.lang.annotation.*;

/**
 * 缓存注解
 *  作用: 根据指定的key从Redis中获取对应的值,
 *        在默认缓存时间的基础上添加随机时间防止雪崩
 *        添加分布式锁防止击穿
 */
@Target({ElementType.METHOD})       //注解作用目标，设置为作用在方法上
@Retention(RetentionPolicy.RUNTIME) //运行时注解
@Documented
public @interface GmallCache {

    /**
     * 缓存在Redis中Key的前缀
     * value可以在注解中省略属性名直接使用
     */
    String value() default "";

    /**
     * 默认缓存过期时间5分钟
     */
    int timeout() default 5;

    /**
     * 防止缓存雪崩,在默认缓存过期时间的基础上添加5分钟之内的随机时间
     */
    int random() default 5;

}
